package com.tedu.api.thread;

/**
 * 创建线程---第三种方案：匿名内部类【推荐：创建一次】
 * Lambda---JDK1.8推出新版本：简化匿名内部类写法
 * Lambda表达式也叫函数式表遍历！功能：简化匿名内部类
 *                               简化集合遍历功能
 *                               简化功能方法
 *                               简化IO流功能
 * Lambda表达式语法：()->{}，属于功能性接口！
 * () 代表
 * -> 代表
 * {} 代表
 * 需求：创建接口  Insert 插排    提供：电
 *      子实现类  Computer  电脑
 *      子类实现接口--完成对象创建【创建1次】
 *      匿名内部类方式完成对象创建
 *      Lambda表达式结构完成对象创建
 */
public class LambdaAPI {
    public static void main(String[] args) {
        //创建插排接口--必须使用子实现类
        //  Insert cp=new Computer();  //多态：造型
        //   cp.Dian();
        //子实现类---创建一次对象---匿名内部类：支持接口以及抽象类创建
        //  Insert cp=new Insert() {
        //   public String Dian(long money, char ch) {
        //      return "电脑通电了~";
        //    }
        //};
        // cp.Dian(100,'2');

        //使用Lambda表达式---简化方法
        Insert cp=(money,ch)->{return;};
        cp.Dian(100,'2');
        /**Lambda表达式---匿名内部类【简化一个子类】【接口创建】
         * () 代表 方法中参数，情况①：无参数，不可以删除
         *                    ②：有参数，有1个参数,括号删除
         *                    ③：有参数，有2个参数以上，不可以删除
         * ->代表 new 对象的过程
         * {} 代表 方法中内容，情况
         *           ①：看方法返回值 void 空 传入输出语句，删除花括号
         *           ②：看方法返回值 Java数据类型 return Java数据类型；
         *                 【两种：八大基本数据类型|引用类型】
         *                     返回值：  存在 return 不可以删除花括号【推荐】
         *                  2.1返回值   不存在return  可以删除花括号【不推荐】
         *           ③：看方法返回值  返回值集合    不可以删除花括号
         */
    }
}
//创建插排--接口
interface Insert{
    public void Dian(long money,char ch);
}



//创建插排实现类--电脑类
class Computer implements Insert{
    public void Dian(long money,char ch) {
        System.out.println("电脑通电开机了");
    }
}